// components/Globdatemiker/Globdatemiker.js
const dayjs = require('dayjs');
Component({

    /**
     * 组件的属性列表
     */
    properties: {

    },

    /**
     * 组件的初始数据
     */
    data: {

        //最小时间
        minDate: new Date(2020, 0, 1).getTime(),
        // 最大时间
        maxDate: new Date().getTime(),
        formatter(type, value) {
            if (type === 'year') {
                return `${value}年`;
            } else if (type === 'month') {
                return `${value}月`;
            }
            return value;
        },
        // 处理后的时间
        datastr: "",
        //选择列表
        textarr: [
            '今日',
            '当月',
            '当年'
        ],
        selctindex: null,
        // 开始时间
        starttime: "",
        // 结束时间
        endtime: "",
        currentDate: new Date().getTime(),
        timese: 1,
        chageblen: false,
        onInputblen: false
    },
    lifetimes: {
        attached: function () {
            // 在组件实例进入页面节点树时执行
            console.log('日期组件实例化 进行今日默认赋值', new Date().getTime());
            this.setData({
                starttime: this.datachuli(new Date().getTime()),
                endtime: this.datachuli(new Date().getTime()),
            })
        },
        detached: function () {
            // 在组件实例被从页面节点树移除时执行
        },
    },

    /**
     * 组件的方法列表
     */
    methods: {
        //如果 结束时间时间戳小于开始时间时间戳 进行调换处理
        replacement() {
            let sdate = this.datachuli(this.data.starttime)
            // 结束时间时间戳
            let edate = this.datachuli(this.data.endtime)
            if (edate < sdate) {
                this.setData({
                    // 开始时间
                    starttime: this.data.endtime,
                    // 结束时间
                    endtime: this.data.starttime,
                })
            }
        },
        cancelfun(e) {
            console.log(e, '时间');
            // _that.datachuli(_that.data.currentDate)
            console.log('确定事件');
            this.replacement()
            console.log(
                this.data.starttime,
                this.data.endtime,
            );
            this.triggerEvent('childFun', {
                datestr: {
                    starttime: this.data.starttime,
                    endtime: this.data.endtime,
                },
                showblen: true
            })

        },
        confirmfun() {
            console.log('取消事件');
            this.triggerEvent('childFun', {

                showblen: false
            })
        },
        /**
         * 日期处理函数
         */
        datachuli(datebox) {
            const timestamp = datebox;
            const date = new Date(timestamp);
            const year = date.getFullYear();
            const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始，需要加1
            const day = String(date.getDate()).padStart(2, '0');
            const formattedDate = `${year}-${month}-${day}`;
            console.log(formattedDate);
            return formattedDate
        },
        // 时间戳还原
        timeor(date11111) {

            const date = new Date(date11111);
            const timestamp = date.getTime();
            console.log(timestamp, '还原时间戳');
            return timestamp

        },
        // 滚动
        onInput(e) {

            console.log(e);
            console.log(!this.data.chageblen ? '列表先动' : '列表后动');
            console.log(e.detail, '时间处理前');
            console.log(this.datachuli(e.detail), '时间处理后');
            let data1111 = this.datachuli(e.detail)
            console.log(this.timeor(data1111), '还原后');
            if (this.data.timese == 1) {
                this.setData({
                    starttime: this.datachuli(e.detail),
                    currentDate: e.detail,
                    // selctindex: !this.data.chageblen ? null : this.data.selctindex
                })
            } else if (this.data.timese == 2) {
                this.setData({
                    endtime: this.datachuli(e.detail),
                    currentDate: e.detail,
                    // selctindex: !this.data.chageblen ? null : this.data.selctindex
                })
            }
        },
        //重置时间
        reset() {
            this.setData({
                starttime: this.datachuli(new Date().getTime()),
                endtime: this.datachuli(new Date().getTime()),
                currentDate: new Date().getTime()
            })
        },
        onInput111() {
            console.log('eeee');
            this.setData({
                selctindex: null
            })
        },
        //按钮选择
        btnselct(e) {

            console.log(!this.data.onInputblen ? '按钮先动' : '按钮后动');




            console.log(e.currentTarget.dataset.index);
            let index = e.currentTarget.dataset.index
            this.setData({
                selctindex: index
            })

            //1 今日  2当月 3当年
            if (index == 0) {
                this.setData({
                    starttime: this.datachuli(new Date().getTime()),
                    endtime: this.datachuli(new Date().getTime()),
                    currentDate: new Date().getTime()
                })
            }
            if (index == 1) {
                const currentTimestamp = Date.now();
                console.log("当前时间戳:", this.datachuli(currentTimestamp));

                // 获取当月月初时间戳
                const startOfMonth = dayjs().startOf('month');
                const startOfMonthTimestamp = startOfMonth.valueOf();
                console.log("当月月初时间戳（使用 Day.js）:", this.datachuli(startOfMonthTimestamp));
                this.setData({
                    starttime: this.datachuli(startOfMonthTimestamp),
                    endtime: this.datachuli(currentTimestamp),
                })

            }
            if (index == 2) {
                const now = new Date();

                // 提取年份
                const year = now.getFullYear();

                // 创建年初的日期对象（当年1月1日 00:00:00）
                const startOfYear = new Date(year, 0, 1); // 月份从0开始，0表示1月

                // 获取年初的时间戳（毫秒）
                const startOfYearTimestamp = startOfYear.getTime();

                // 获取当前日期的时间戳（毫秒）
                const currentTimestamp = now.getTime();

                console.log(`当年年初时间戳（毫秒）：${startOfYearTimestamp}`, this.datachuli(startOfYearTimestamp));
                console.log(`当前时间戳（毫秒）：${currentTimestamp}`, this.datachuli(currentTimestamp));
                this.setData({
                    starttime: this.datachuli(startOfYearTimestamp),
                    endtime: this.datachuli(currentTimestamp),
                })
                // 当前的选中 
                if (this.data.timese == 1) {
                    this.setData({
                        currentDate: startOfYearTimestamp
                    })
                } else if (this.data.timese == 2) {
                    this.setData({
                        currentDate: currentTimestamp
                    })
                }
            }
        },
        //时间选择
        timesecc(e) {
            this.setData({
                timese: e.currentTarget.dataset.typein
            })
            // 选中时如若是开始or结束 赋值今日时间 1743465600000 
            if (e.currentTarget.dataset.typein == 1) {
                console.log(e, '选中开始时间');
                this.setData({
                    currentDate: this.timeor(this.data.starttime)
                })

            } else if (e.currentTarget.dataset.typein == 2) {
                console.log(e, '选中结束时间');
                this.setData({
                    currentDate: this.timeor(this.data.endtime)
                })
            }

        }

    }
})